//管理用户相关
import {defineStore} from 'pinia'
import { ref } from 'vue'
import { LoginAPI } from '@/apis/user'
import { useCartStore } from './cartStore'
import { mergeCartAPI } from '@/apis/cart'

export const useUserStore = defineStore('user',()=>{
    // 1.定义用户数据的state
    const userInfo = ref({})

    const cartStore = useCartStore()

    // 2.定义获取接口数据的action函数
    const getUserInfo = async ({ account, password })=>{
        const res = await LoginAPI({ account, password })
        userInfo.value = res.result
        // 合并购物车操做
        await mergeCartAPI(cartStore.cartList.map(item =>{
            return{
                skuId:item.skuId,
                selected:item.selected,
                count:item.count
            }
        }))
        cartStore.update()
    }
    //退出时,清除用户信息
    const clearUserInfo = ()=>{
        userInfo.value = {}
        //清空购物车
        cartStore.clearList()
    }
    //3.以对象的形式把state和action返回
    return {
        userInfo,
        getUserInfo,
        clearUserInfo
    } 
},{
    //存储到本地
    persist: true,
})